EP2. LLM과 서비스

LLM 모델의 구조·학습 방식을 이해하고, 메이저·특화·오픈소스 API 옵션 및 자체 서비스 구축의 현실적 비용을 파악하며, 모델 중심·서비스 중심·에이전트 중심이라는 세 가지 기획 마인드셋 중 목표 시장에 맞는 전략을 선택한다.


1. 주제 정의

LLM(Large Language Model)과 서비스란, 이미 사전 학습된 거대 언어 모델을 직접 만드는 것이 아니라 API 또는 로컬 서빙을 통해 서비스에 적용하는 실무 전략 전반을 말한다. GPT-3 이후의 LLM 생태계에서 개발자의 역할은 모델 제작자가 아닌 모델 선택·운용·기획자로 전환됐다.

핵심 용어: - Pre-training (사전 학습): 대규모 텍스트로 언어 패턴을 학습하는 단계 - Fine-tuning (미세 조정): 특정 도메인·태스크에 맞게 추가 학습 - Inference (인퍼런스): 모델에 요청하여 응답을 받는 행위 - Foundation Model: GPT-3 이후 등장한, 타인이 학습시킨 대형 기반 모델


2. 풀려는 문제

  1. 모델 이해 격차: 어떤 LLM을 서비스에 써야 하는지 판단 기준이 없음
  2. API 선택 혼란: 메이저/특화/오픈소스 API가 혼재하며 비용·성능 비교가 어려움
  3. 자체 구축 유혹: "직접 모델을 구동하면 비용을 아낄 수 있지 않을까"라는 오해
  4. 기획 방향 미정: AI 서비스를 어떤 관점에서 시작해야 하는지 프레임워크 부재

3. 핵심 개념·구조

3-1. LLM 모델 이해의 3단계

단계 내용
기본 지식 신경망 구조, 사전 학습·미세 조정 방식, 변형 구조(MoE, SSM 등)
모델 평가 벤치마크 기준, 구조적 장단점 이해
튜닝 지식 경량 튜닝(LoRA/QLoRA), 사후 학습 종류, 데이터셋 구성법

"모델을 이해하는 필요성은, 모델을 보고 '아, 이게 쓸 만한 모델이네' 하고 알기 위해서 공부하는 거죠."

3-2. LLM API 세 가지 유형

유형 대표 서비스 특징 비용
메이저 업체 OpenAI, Anthropic, Google, Grok 범용 고성능, 부가 API 다양 높음
특화 업체 Upstage(PDF 리더), TTS/음악 생성 특수 목적, 교집합 없는 기능 낮음
오픈소스 API Llama Cloud, Ollama Cloud 등 커스텀 모델 탑재 가능, 저렴 가장 낮음

3-3. 자체 서비스 구축 방법 (최후 수단)

방법 도구 비고
인퍼런스 앱 활용 LM Studio, Ollama, vLLM, DeepSpeed 메이저 업체 퍼스트 파트너
Python 직접 구현 HuggingFace Transformers 모델마다 커스터마이즈 필요

3-4. AI 서비스 기획 마인드셋 3가지

사고 출발점 강점 시장 약점
모델 중심 모델/API 능력 AI 서비스 초기 기획 기능 제약에 묶임
서비스 중심 사용자 편익 기존 시장에 AI 투입 AI 서비스 인식 낮음
에이전트 중심 워크플로우 설계 B2B, 기업 시장 B2C에 개념 생소

4. 구현 가이드 (Do It Yourself)

시작 전 (Before you begin)

  • Python 3.10+ 설치 확인
  • pip install openai anthropic 설치 (--break-system-packages on Ubuntu WSL)
  • .env 파일에 OPENAI_API_KEY, ANTHROPIC_API_KEY 저장
  • Ollama 로컬 구동 시 Docker 또는 바이너리 설치

Step 1 — OpenAI Responses API 첫 호출

OpenAI Platform 문서(slide 4)에 표시된 최소 호출 패턴을 그대로 따른다.

JavaScript (공식 quickstart verbatim):

import OpenAI from 'openai';
const client = new OpenAI();
const response = await client.responses.create({
  model: 'gpt-5', input: '서비스 기획 마인드셋 3가지를 설명해줘'
});
console.log(response.output_text);

⚠️ 주의: model: 'gpt-5'는 OpenAI Platform 문서 verbatim이다. 실제 사용 가능한 모델 ID는 https://platform.openai.com/docs/models 에서 확인한다.

Python 동등 코드:

from openai import OpenAI
client = OpenAI()
response = client.responses.create(
  model="gpt-4o", input="서비스 기획 마인드셋 3가지를 설명해줘"
)
print(response.output_text)

💡 실무 노하우: Responses API는 기존 Chat Completions API의 후계자다. response.output_text로 바로 텍스트를 꺼낼 수 있어 코드가 단순해진다.

✅ 확인: response.output_text가 출력되면 Step 1 완료.


Step 2 — Anthropic Messages API 호출 (claude-sonnet-4-6)

import anthropic
client = anthropic.Anthropic()
message = client.messages.create(
  model="claude-sonnet-4-6",
  max_tokens=1024,
  messages=[{"role": "user", "content": "LLM API 3가지 유형을 비교해줘"}]
)
print(message.content[0].text)

💡 실무 노하우: Anthropic SDK는 prompt caching을 지원한다. 반복 요청 시 cache_control: {"type": "ephemeral"}를 system 블록에 추가하면 입력 토큰 비용을 최대 90% 절감할 수 있다 (2026-05-16 Anthropic 공식 문서 기준, https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching).

✅ 확인: message.content[0].text가 반환되면 Step 2 완료.


Step 3 — Ollama 로컬 모델 구동

# 모델 다운로드 및 실행 (llama3.2 기준)
ollama pull llama3.2
ollama run llama3.2 "LLM API 선택 기준을 설명해줘"

📚 참고: Ollama는 LM Studio, vLLM, DeepSpeed와 함께 메이저 업체의 퍼스트 파트너 인퍼런스 앱이다. https://github.com/ollama/ollama 에서 설치 가이드를 확인한다.

⚠️ 주의: 로컬 구동은 GPU VRAM 요구사항이 크다. 7B 모델 기준 최소 8GB VRAM 필요. 서비스 트래픽 대응에는 부적합하다.

✅ 확인: 터미널에서 모델 응답이 출력되면 Step 3 완료.


Step 4 — Agent Builder 'Planning helper' 템플릿 활용

OpenAI Platform → Agent Builder → "Create a workflow" 클릭 후 Planning helper 템플릿을 선택한다 (slide 13 verbatim).

Agent Builder 내 주요 템플릿 목록: - Data enrichment — 외부 데이터 보강 워크플로우 - Planning helper — 계획 수립 및 후속 질문 처리 - Customer service — 고객 응대 자동화 - Structured Data OIA — 구조화 데이터 추출 - Document comparison — 문서 비교 분석 - Internal Knowledge Assistant — 내부 지식 검색 에이전트

사이드바 기능: Workflows, Batches, Evaluation, Fine-tuning

Planning helper 워크플로우 구조 (slide 15 참조):

Start → Triage Agent → Condition (has_all_details?) → Launch helper Agent
                                                     → Get data Agent

💡 실무 노하우: Planning helper는 "필요 데이터가 있는지 먼저 확인 → 없으면 사용자에게 요청 → 있으면 plan 생성"의 패턴으로 동작한다. 이는 에이전트 중심 사고의 핵심 워크플로우 설계 패턴이다.

✅ 확인: Planning helper 템플릿 미리보기에서 워크플로우 노드가 3개 이상 보이면 완료.


Step 마지막 — 동작 확인

체크 항목 확인 방법
OpenAI API 응답 response.output_text 출력 확인
Anthropic API 응답 message.content[0].text 출력 확인
Ollama 로컬 응답 터미널 텍스트 출력 확인
Agent Builder 워크플로우 노드 3개 이상 시각화 확인

✅ 확인: 4개 항목 모두 통과하면 EP2 실습 완료.


5. 적용 사례 (공신력 OSS 5+)

다음 오픈소스 프로젝트는 EP2 개념을 실제 구현에 직접 활용할 수 있다.

  1. LangChainhttps://github.com/langchain-ai/langchain 메이저·특화·오픈소스 LLM을 동일 인터페이스로 연결. 에이전트 중심 워크플로우 구현에 적합.

  2. LlamaIndexhttps://github.com/run-llama/llama_index Internal Knowledge Assistant 패턴(RAG)을 구현할 때 사용. Agent Builder의 "File search" 노드 역할을 로컬에서 수행.

  3. OpenAI Python SDKhttps://github.com/openai/openai-python Responses API, Assistants API, Batch API를 Python에서 직접 호출. Tier 1 공식 SDK.

  4. Anthropic Python SDKhttps://github.com/anthropics/anthropic-sdk-python claude-sonnet-4-6, claude-opus-4-7 등 모델 호출과 prompt caching 구현.

  5. vLLMhttps://github.com/vllm-project/vllm 자체 서비스 구축 시 오픈소스 모델을 고성능으로 서빙. LM Studio·Ollama의 프로덕션급 대안.

  6. Ollamahttps://github.com/ollama/ollama 로컬 LLM 구동의 표준 도구. Llama·Mistral·Qwen 등 수십 종의 모델 원클릭 설치.

  7. HuggingFace Transformershttps://github.com/huggingface/transformers Python 직접 구현 시 오픈소스 모델 로드·파인튜닝의 기반 라이브러리.

  8. LiteLLMhttps://github.com/BerriAI/litellm OpenAI·Anthropic·Google·Ollama 등 100개 이상 LLM을 단일 completion() 인터페이스로 통합. 메이저 API + 특화 API 병행 전략 구현에 유리.


6. 핵심 원리

원리 1 — GPT-3 이후 패러다임 전환

GPT-3(2020) 이후 개인·기업이 LLM을 직접 만드는 시대는 종료됐다. 핵심 역량은 "어떤 모델을 어떻게 조합하느냐"로 이동했다.

원리 2 — 비용 역설

메이저 API가 "비싸다"고 느껴질 때는 서비스가 성공한 것이다. 초기 단계에서는 가장 좋은 모델을 쓰는 것이 개발 속도를 높여 결과적으로 더 효율적이다.

원리 3 — 특화 API 병행 전략

문서 처리(Upstage), 음성 TTS, 음악 생성 등은 메이저 API 대신 특화 API를 사용하면 동일 품질에 비용을 대폭 절감할 수 있다.

원리 4 — 자체 구축은 최후 수단

자체 서비스 구축은 연구·테스트·프로토타입 목적에 한정한다. 프로덕션 트래픽 대응을 위해서는 수억 원대 GPU와 그에 상응하는 전력 비용이 필요하다.

원리 5 — 기획 마인드셋과 시장 적합도

"기존 시장에서 성공하고 있는 서비스에 AI를 투입할 때는 서비스 중심 사고가 나쁘지 않고, 맨 땅에서 AI 관련 서비스를 기획할 때는 모델 중심 사고로 기틀을 잡는 것이 도움이 된다."


7. 변형·확장

7-1. 오픈소스 모델 튜닝 파이프라인

영어 기반 오픈소스 모델에 한국어 공개 데이터셋을 적용해 한국어 특화 모델을 만들 수 있다: 1. Llama 3.2 (Meta) 기반 모델 선택 2. 한국어 공개 데이터셋(AI Hub, KLUE 등) 수집 3. LoRA/QLoRA로 경량 파인튜닝 (A100 80GB 1장으로 7B 모델 튜닝 가능) 4. Ollama 또는 vLLM으로 서빙

7-2. 멀티 프로바이더 전략

LiteLLM을 활용한 폴백 구성:

from litellm import completion
response = completion(
  model="openai/gpt-4o",
  fallbacks=["anthropic/claude-sonnet-4-6", "ollama/llama3.2"],
  messages=[{"role":"user","content":"안녕"}]
)

7-3. RPG NPC 특화 모델 활용

오픈소스 API(Llama Cloud 등)를 통해 "RPG NPC 특화", "스포츠 트레이너 특화" 등 일반 API에서 제공하지 않는 사전 학습 모델을 서비스에 탑재할 수 있다.


8. 다른 도구·접근과의 비교 (3-way)

비교 항목 OpenAI (메이저) Anthropic (메이저) OSS/Llama (자체)
성능 (2026-05 기준) GPT-4o, o3 계열 최고 수준 claude-opus-4-7 장문·추론 강점 Llama 3.3 70B, 메이저와 근접
비용 높음 (토큰당 과금) 높음 (caching으로 절감 가능) 낮음 (서버 비용만)
부가 API 이미지·음성·에이전트·파인튜닝 없음 (LLM 전문) 없음 (직접 구성)
Agent Builder 내장 (Planning helper 등 템플릿) 없음 (SDK만 제공) LangChain/LlamaIndex 활용
Privacy 클라우드 전송 클라우드 전송 온프레미스 가능
운영 복잡도 낮음 낮음 매우 높음

📚 참고: 선택 기준은 "프라이버시 요구사항 → 비용 → 기능 범위" 순서로 좁혀 나가는 것이 권장 패턴이다 (2026-05-16 기준).


9. 한계·트레이드오프

9-1. 비용

  • 메이저 API는 토큰 단위 과금. 서비스 성공 시 비용이 선형 이상으로 증가.
  • 자체 구축은 초기 GPU 비용(억 원대)과 전기세가 고정 지출.

9-2. Rate Limit

  • OpenAI, Anthropic 모두 Tier별 RPM/TPM 제한이 있다.
  • 프로덕션에서는 지수 백오프(exponential backoff) + 다중 API 키 풀 운영이 필수.
import time, random
for attempt in range(5):
    try:
        return client.responses.create(...)
    except RateLimitError:
        time.sleep(2 ** attempt + random.random())

9-3. Hallucination

LLM은 사실이 아닌 정보를 확신을 갖고 생성한다. RAG(Retrieval-Augmented Generation) 또는 function calling으로 외부 데이터 소스를 연결해 완화해야 한다.

9-4. Privacy

메이저 API는 입력 데이터가 클라우드로 전송된다. 개인정보·영업비밀이 포함된 경우 온프레미스 Ollama/vLLM 구성 또는 엔터프라이즈 계약 필수.

9-5. 모델 Deprecation

API 모델은 버전 deprecated 시 마이그레이션이 필요하다. 모델 ID를 하드코딩하지 말고 환경변수로 관리한다.


10. 현재 권장 패턴 (2026-05-16 기준)

10-1. Structured Output / Function Calling

모델이 JSON을 안정적으로 반환하도록 강제한다. OpenAI Responses API와 Anthropic tool_use 모두 지원.

response = client.responses.create(
  model="gpt-4o",
  input="사용자 이름과 이메일을 추출해줘: ...",
  text={"format": {"type": "json_schema", "json_schema": {...}}}
)

10-2. MCP (Model Context Protocol)

OpenAI Platform 사이드바에서 "Connectors and MCP"로 노출된다. 외부 도구·DB를 에이전트 워크플로우에 표준 방식으로 연결하는 프로토콜. LangChain·LlamaIndex도 MCP 지원 중 (2026-05-16 기준).

10-3. Observability — LangSmith / Langfuse

프로덕션에서 모든 LLM 호출에 트레이싱을 추가한다. LangSmith(LangChain), Langfuse(OSS) 모두 LLM span을 자동 캡처한다.

10-4. Batch API

동시성이 필요 없는 대량 요청(데이터셋 처리 등)은 OpenAI Batch API를 사용하면 비용을 50% 절감할 수 있다 (OpenAI 공식 문서 기준, https://platform.openai.com/docs/guides/batch). Agent Builder 사이드바의 Batches 메뉴에서 관리.

10-5. Prompt Caching

Anthropic SDK에서 시스템 프롬프트에 cache_control을 설정하면 반복 요청 시 토큰 비용을 최대 90% 절감한다 (https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching, 2026-05-16 확인).


11. 메타인지 자기평가

다음 질문에 답할 수 있으면 EP2 학습 완료다.

질문 확인
LLM의 사전 학습과 미세 조정의 차이를 설명할 수 있는가?
메이저·특화·오픈소스 API의 각 사용 시나리오를 3가지 이상 들 수 있는가?
자체 서비스 구축이 "최후 수단"인 이유 2가지를 설명할 수 있는가?
모델 중심·서비스 중심·에이전트 중심 사고의 적합 시장이 다른 이유를 설명할 수 있는가?
client.responses.create 패턴으로 첫 API 호출 코드를 작성할 수 있는가?
Planning helper 템플릿의 워크플로우 노드 흐름을 그릴 수 있는가?
Rate limit 대응을 위한 지수 백오프를 코드로 구현할 수 있는가?

📚 참고: 3개 미만이면 §3·§4를 재독 후 Ollama 로컬 실습을 먼저 진행한다. 5개 이상이면 EP3(RAG·임베딩)으로 진행 가능하다.

난이도
에피소드
질문
카드를 로딩 중...
답변

클릭하거나 Space를 눌러 뒤집기

0 / 0
학습 진도 0%
이동   Space 뒤집기   R 셔플